Portable Compilers for OpenMP
نویسندگان
چکیده
The recent parallel language standard for shared memory multiprocessor (SMP) machines, OpenMP, promises a simple and portable interface for programmers who wish to exploit parallelism explicitly. In this paper, we present our effort to develop portable compilers for the OpenMP parallel directive language. Our compiler consists of two parts. Part one is an OpenMP parallelizer, which transforms sequential languages into OpenMP. Part two transforms programs written in OpenMP into thread-based form and links with our runtime library. Both compilers are built on the Polaris compiler infrastructure. We present performance measurements showing that our compiler yields results comparable to those of commercial OpenMP compilers. Our infrastructure is freely available with the intent to enable research projects on OpenMP-related language development and compiler techniques.
منابع مشابه
MOERAE: Portable, Thread-Based Interface between Parallelizing Compilers and Shared-Memory Multiprocessorsy
Shared-memory multiprocessor (SMP) machines have become widely available. As the user community grows, the importance of compilers that can translate standard, sequential programs onto this machine class is increasing. In this paper we deal with the issue of how such parallelizing compilers generate code that can be re-targeted easily and eeciently at diierent machines. The goal is to create a ...
متن کاملPractical Compiler Techniques on Efficient Multithreaded Code Generation for OpenMP Programs
State-of-the-art multiprocessor systems pose several difficulties: (i) the user has to parallelize the existing serial code; (ii) explicitly threaded programs using a thread library are not portable; (iii) writing efficient multi-threaded programs requires intimate knowledge of machine’s architecture and micro-architecture. Thus, well-tuned parallelizing compilers are in high demand to leverage...
متن کاملPortable Support and Exploitation of Nested Parallelism in OpenMP
In this paper, we present an alternative implementation of the NANOS OpenMP runtime library (NthLib) that targets portability and efficient support of multiple levels of parallelism. We have implemented the runtime libraries of available opensource OpenMP compilers on top of NthLib, reducing thus their overheads and providing them with inherent support for nested parallelism. In addition, we pr...
متن کاملEarly Experiences Writing Performance Portable OpenMP 4 Codes
In this paper, we evaluate the recently available directives in OpenMP 4 to parallelize a computational kernel using both the traditional shared memory approach and the newer accelerator targeting capabilities. In addition, we explore various transformations that attempt to increase application performance portability, and examine the expressiveness and performance implications of using these a...
متن کاملOpenMP Optimization Techniques: Comparison of Fortran and C Compilers
The purpose of this benchmark is to compare the optimization techniques in current Fortran and C OpenMP compilers. Examples are the removal of redundant synchronization constructs and effective constructs for alternative code. Although all tests focus on language independent techniques, there are differences in the implementation of the compilers.
متن کامل